package study.nosql.redis.controller;

import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RBloomFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import study.eggs.result.Result;
import study.eggs.result.Results;

/**
 * 布隆过滤器可以告诉我们某样东西“一定不存在或者可能存在”
 */
@Slf4j
@RestController
@RequestMapping("/bloom")
public class _9_BloomController {

    @Autowired
    private RBloomFilter<String> bloomFilter;

    @RequestMapping("/addCode")
    public Result addCode(String code) {
        //
        boolean being = bloomFilter.contains(code);
        //------ 如果不存在，那是真不存在 ------
        if (!being) {
            //
            boolean succ = bloomFilter.add(code);
            log.info("{} 不存在, 新增 succ= {}", code, succ);
        } else { //------ 如果存在，有可能不存在 ------
            log.info("{} 可能存在", code);
        }

        return Results.ok();
    }
}
